草庐IT

序列化器 Serializer

全部标签

c# - XML 序列化最后生成随机字符串? C#

这个问题在这里已经有了答案:FileMode.OpenandFileMode.OpenOrCreatedifferencewhenfileexists?c#bug?(1个回答)关闭4年前。在序列化类并保存到文件时,有时会发生错误,序列化后的输出如下所示:SomeRouteSomethingHerete>------>Noticethisextrastring?我正在序列化的类如下所示:[Serializable]publicclassTemplate{publicstringRoute=string.Empty;publicstringTradePack=string.Empty;pu

.net - 将 XML 中的 <ArrayOf> 反序列化为 List<>

我在反序列化WCF网络服务的结果时遇到问题。该方法返回List,它被序列化为XML,如下所示。当我尝试反序列化时,我只是得到一个异常,如下所示。看来我无法反序列化至List.注意RecipeEntity按合约名称映射到Recipe.搜索后我看到许多建议的XmlArray和XmlElement属性,但据我所知它们不适用于GetRecipes()。方法。我只看到它们用于序列化类的字段。我知道我可以包装List在RecipeListclass并返回它,但我宁愿将任何给定类型直接反序列化为List。异常(exception):System.InvalidOperationExceptionwa

c# - 以编程方式将类序列化为 xsd

有没有办法以编程方式从C#.NET类创建XSD?我想使用类型信息将对象序列化为xsd(或xml)。 最佳答案 是的;查看XsdDataContractExporter;MSDN有一个fullexamplehere.备选;XmlSchemaExporter 关于c#-以编程方式将类序列化为xsd,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/8308500/

c# - 由于格式化,XML 反序列化在十进制解析时崩溃

当我尝试将XML解析为对象时抛出System.FormatException。据我所知,这是由于System.Xml.Serialization.XmlSerializer.Deserialize中使用的区域性导致的,它期望一个点作为十进制字符,但xml包含一个逗号。对象如下所示:publicsealedclassTransaction{[XmlElement("transactionDate")]publicDateTimeTransactionDate{get;set;}[XmlElement("transactionAmount")]publicdecimalAmount{get

c# - List<Object> 的 XML 序列化

我无法使用XML序列化将动物列表保存到磁盘。我收到异常:抛出:“AnimalLibrary.Animals.Mammals.Dog类型不是预期的。使用XmlInclude或SoapInclude属性指定静态未知的类型。”(System.InvalidOperationException)如果我尝试使用“Dog”注释代码,它将按预期工作并生成XML。但是作为列表中唯一元素发送的同一条狗不起作用。[XmlElement("animalList")]publicListanimalList=newList();publicboolSaveBinary(stringfileName){Mamm

c# - 如何使类反序列化为不同的名称

例如:将很好地序列化到一个名为“apple”的类。但是,如果我想将该类称为“Dragon”,它将不会序列化(这是有道理的)。我想知道如何标记“Dragon”,以便当XmlSerializer看到它时,它知道“Dragon”与 最佳答案 假设Dragon至少定义了apple所做的属性和字段的超集,那么competent_tech的回答是合适的,尽管我认为您的问题实际上是在问:[System.Xml.Serialization.XmlType("apple")]publicclassDragon如果Dragon不与apple兼容,那么您

c# - 如何使用类名作为根元素序列化 C# 类

我有以下C#类[XmlRoot("Customer")]publicclassMyClass{[XmlElement("CustId")]publicintId{get;set;}[XmlElement("CustName")]publicstringName{get;set;}}然后我使用以下函数将类对象序列化为XmlpublicstaticXmlDocumentSerializeObjectToXML(objectobj,stringsElementName){XmlSerializerserializer=newXmlSerializer(obj.GetType(),newXml

c# - 如何使用默认命名空间反序列化 xml?

我正在尝试反序列化由内部系统之一生成的Atomxml。但是,当我尝试时:publicstaticMyTypeFromXml(stringxml){XmlSerializerserializer=newXmlSerializer(typeof(MyType));return(MyType)serializer.Deserialize(newStringReader(xml));}它在命名空间的定义上抛出一个异常:System.InvalidOperationException:wasnotexpected.当我将命名空间添加到XmlSerializer的构造函数时,我的对象完全是空的:p

xml - 在 xslt 中创建序列号

输入XML:Paragraph1Paragraph2Paragraph3Paragraph4Paragraph5Paragraph6要求的输出:Paragraph1Paragraph2Paragraph3Paragraph4Paragraph5Paragraph6我尝试使用以下XSL,但没有获得所需的输出。任何人都可以帮助我吗?我得到的结果是:Paragraph1Paragraph2Paragraph3Paragraph4Paragraph5Paragraph6 最佳答案 这是一个不使用xsl:for-each或任何xsl:vari

c# - 反序列化错误 : The XML element 'name' from namespace '' is already present in the current scope

这是我第一次使用XML序列化,在尝试解决此问题2天后,这绝对让我疯狂。反序列化开始时出现此错误:TheXMLelement'name'fromnamespace''isalreadypresentinthecurrentscope.UseXMLattributestospecifyanotherXMLnameornamespacefortheelement.错误发生在我代码中的这一行:Albumalbum=(Album)serializer.Deserialize(reader);我不知道为什么。没有重复的“名称”节点,所以我就是不明白。这是从来自第3方RESTAPI的HttpWebR